package com.jindy.module.outboundorder.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jindy.common.annotation.Excel;
import com.jindy.common.core.domain.BaseEntity;

/**
 * 出库单对象 t_outbound_order
 *
 * @author ruoyi
 * @date 2022-10-18
 */
@Data
public class OutboundOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;
    /** 父级出库单id */
    private Long parentId;

    /** 出库编号 */
    @Excel(name = "出库编号")
    private String outboundNo;

    /** 出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outboundTime;

    /** 发起人 */
    @Excel(name = "发起人")
    private Long sponsor;

    /** 发起人名称 */
    @Excel(name = "发起人名称")
    private String sponsorName;

    /** 客户 */
    @Excel(name = "客户")
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private String orderType;

    /** 租赁销售订单 */
    @Excel(name = "租赁销售订单")
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNo;

    /** 出库仓库 */
    @Excel(name = "出库仓库")
    private Long outboundWarehouseId;

    /** 出库仓库名称 */
    @Excel(name = "出库仓库名称")
    private String outboundWarehouseName;

    /** 日租金合计 */
    @Excel(name = "日租金合计")
    private BigDecimal totalDailyRent;

    /** 订单状态（1待出库 2已出库）*/
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /**
     * 出库产品列表
     */
    private List<OutboundOrderProduct> productList;

    /**
     * 机器列表
     */
    private List<OutboundOrderMachine> machineList;
    /**
     * 关联的子出库表
     */
    private List<OutboundOrder> childOutboundOrder;

    /** 未出库数量 */
    @Excel(name = "未出库数量")
    private Integer undeliveryQuantity;

    /** 运输方式 */
    @Excel(name = "运输方式")
    private String shippingType;

    /** 司机姓名 */
    @Excel(name = "司机姓名")
    private String driverName;

    /** 司机联系方式 */
    @Excel(name = "司机联系方式")
    private String driverTel;

    /** 车辆信息 */
    @Excel(name = "车辆信息")
    private String vehicleInformation;

    /** 物流费用 */
    @Excel(name = "物流费用")
    private BigDecimal logisticsExpenses;

    /** 物流费用填写状态（1已完全填写，2未完全填写） */
    private String expensesStatus;

    /** 物料说明 */
    @Excel(name = "物料说明")
    private String materialSpecification;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String address;

}
